package com.hxzy.booking.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxzy.booking.pojo.Booking;
import com.hxzy.booking.pojo.SignIn;
import com.hxzy.course.pojo.Course;
import com.hxzy.course.pojo.Staff;
import com.hxzy.region.pojo.Region;
import io.swagger.models.auth.In;

import java.util.Date;
import java.util.List;


public interface BookingService {

    /**预约分页查询
     * @Author hjs
     * @Description //TODO
     * @Date 9:15 2021/9/22
     * @Param [current, size]
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.hxzy.booking.pojo.Booking>
     **/
    public Page<Booking> findAll(Integer pageNum, Integer pageSize);

    /**查询未签到的
     * @Author hjs
     * @Description //TODO
     * @Date 15:33 2021/9/27
     * @Param [current, size]
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.hxzy.booking.pojo.Booking>
     **/
    public Page<Booking> findAllNotSign(Integer pageNum, Integer pageSize);

    /**签到记录分页查询
     * @Author hjs
     * @Description //TODO
     * @Date 16:08 2021/9/27
     * @Param [current, size]
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.hxzy.booking.pojo.SignIn>
     **/
    public Page<SignIn> findAllSignIn(Integer pageNum, Integer pageSize);

    /**查询所有场馆
     * @Author hjs
     * @Description //TODO
     * @Date 16:15 2021/9/24
     * @Param []
     * @return java.util.List<com.hxzy.region.pojo.Region>
     **/
    public List<Region> findAllRegion();

    /**查询所有教练
     * @Author hjs
     * @Description //TODO
     * @Date 9:56 2021/9/24
     * @Param []
     * @return java.util.List<com.hxzy.course.pojo.Staff>
     **/
    public List<Staff> findAllStaff();

   /**查询所有课程
    * @Author hjs
    * @Description //TODO
    * @Date 9:15 2021/9/22
    * @Param []
    * @return java.util.List<com.hxzy.course.pojo.Course>
    **/
    public List<Course> findAllCourse();

    /**查询预约所有信息
     * @Author hjs
     * @Description //TODO
     * @Date 15:03 2021/9/23
     * @Param []
     * @return java.util.List<com.hxzy.booking.pojo.Booking>
     **/
//    public List<Booking> findAllInfo();

    /**模糊查询课程名
     * @Author hjs
     * @Description //TODO
     * @Date 11:31 2021/9/22
     * @Param [name]
     * @return java.util.List<com.hxzy.course.pojo.Course>
     **/
    public Page<Booking> likeNameCourse(String regionName, String coachName, String courseName, Integer flag, String bookingTime, String schoolTime, String card, String tel, String name,Integer pageNum, Integer pageSize);

    /**签到搜索
     * @Author hjs
     * @Description //TODO
     * @Date 9:19 2021/9/28
     * @Param [sTime, name, card]
     * @return java.util.List<com.hxzy.booking.pojo.SignIn>
     **/
    public Page<SignIn> searchSign(String sTime,String name, String card,Integer pageNum, Integer pageSize);

    /**查询所有销售
     * @Author hjs
     * @Description //TODO
     * @Date 11:42 2021/9/26
     * @Param []
     * @return java.util.List<com.hxzy.course.pojo.Staff>
     **/
    public List<Staff> findAllSell();

    /**添加预约
     * @Author hjs
     * @Description //TODO
     * @Date 13:40 2021/9/18
     * @Param [i]
     * @return int
     **/
    public boolean addBooking(String memberCard, String bGender, String bTel, String sellName, String bcourseName, Integer bFlag, String bRemark, Integer arrangeId);

    /**通过预约编号删除预约
     * @Author hjs
     * @Description //TODO
     * @Date 10:25 2021/9/27
     * @Param [bid]
     * @return boolean
     **/
    public boolean deleteBooking(int bid);


    public boolean updateBooking(Booking booking);

    /**根据预约编号签到
     * @Author hjs
     * @Description //TODO
     * @Date 11:08 2021/9/29
     * @Param [bid]
     * @return boolean
     **/
    public boolean signInBooking(int bid,String coName);

    /**导出查询
     * @Author hjs
     * @Description //TODO
     * @Date 20:31 2021/10/11
     * @Param []
     * @return java.util.List<com.hxzy.booking.pojo.Booking>
     **/
    public List<Booking> export();

}
